package negocio.java;

import java.util.ArrayList;
import java.util.HashSet;

public class Vehiculo {

	private ArrayList<Infraccion> infracciones;
	private HashSet<Categoria> categorias;
	private String patente;
	private int puntosRegistro;
	private double importeMultas;

	public static final int PUNTOSINICIALES = 1000;
	public static final double IMPORTEINICIAL = 0.0;
	
	public Vehiculo(String patente){
		this.infracciones = new ArrayList<Infraccion>(); 
		this.categorias = new HashSet<Categoria>();		
		this.puntosRegistro = Vehiculo.PUNTOSINICIALES;
		this.importeMultas= Vehiculo.IMPORTEINICIAL;
		this.setPatente(patente);
	}
	
	public void notificar(Captura captura){
		for (Categoria unaCategoria : categorias){
			unaCategoria.notificar(captura);
		}
		
	}
	
	public int getPuntosRegistro() {
		return puntosRegistro;
	}

	public void setPuntosRegistro(int puntosRegistro) {
		this.puntosRegistro = puntosRegistro;
	}

	public boolean tieneInfracciones() {
		return !this.infracciones.isEmpty();
	}

	public void addInfraccion(Infraccion infraccion) {
		this.infracciones.add(infraccion);
		this.puntosRegistro -= infraccion.getPuntos();
		this.importeMultas += infraccion.getCosto();
	}

	public void addCategoria(Categoria categoria) {
		this.categorias.add(categoria);
	}

	public HashSet<Categoria> getCategorias() {
		return this.categorias;
	}
	
	public ArrayList<Infraccion> getInfracciones() {
		return infracciones;
	}

	public void setInfracciones(ArrayList<Infraccion> infracciones) {
		this.infracciones = infracciones;
	}

	public void setPatente(String patente){
		this.patente = patente;
	}
	
	public String getPatente(){
		return this.patente;
	}
	
	public int puntosRegistro(){
		return this.puntosRegistro;
	}
	
	public double getImporteMultas() {
		return importeMultas;
	}
	
	public void setImporteMultas(double importeMultas) {
		this.importeMultas = importeMultas;
	}
	
}

